package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 门店员工提成设置，按门店配置多种提成规则对象 store_employee_commission_setting
 *
 * @author ruoyi
 * @date 2025-05-13
 */
@Data
@ApiModel("门店员工提成设置，按门店配置多种提成规则")
public class StoreEmployeeCommissionSetting extends AbdulBaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 唯一标识符，自增主键
     */
    @ApiModelProperty("唯一标识符，自增主键")
    private Long id;

    /**
     * 门店名称（如“北京朝阳店”）
     */
    @Excel(name = "门店名称", readConverterExp = "如=“北京朝阳店”")
    @ApiModelProperty("门店名称")
    private String storeName;

    /**
     * 门店编号（唯一编码，如“BJCY001”）
     */
    @Excel(name = "门店编号", readConverterExp = "唯=一编码，如“BJCY001”")
    @ApiModelProperty("门店编号")
    private String storeCode;

    /**
     * 预订提成规则（如“5%”或“10元/单”）
     */
    @Excel(name = "预订提成规则", readConverterExp = "如=“5%”或“10元/单”")
    @ApiModelProperty("预订提成规则")
    private String bookingCommissionRule;

    /**
     * 桌台费提成规则（如“3%”或“5元/桌”）
     */
    @Excel(name = "桌台费提成规则", readConverterExp = "如=“3%”或“5元/桌”")
    @ApiModelProperty("桌台费提成规则")
    private String tableFeeCommissionRule;

    /**
     * 服务费提成规则（如“10%”或“20元/单”）
     */
    @Excel(name = "服务费提成规则", readConverterExp = "如=“10%”或“20元/单”")
    @ApiModelProperty("服务费提成规则")
    private String serviceFeeCommissionRule;

    /**
     * 员工服务计费点单提成规则（如“点单金额的2%”）
     */
    @Excel(name = "员工服务计费点单提成规则", readConverterExp = "如=“点单金额的2%”")
    @ApiModelProperty("员工服务计费点单提成规则")
    private String employeeOrderCommissionRule;

    /**
     * 员工服务计费服务提成规则（如“服务费金额的15%”）
     */
    @Excel(name = "员工服务计费服务提成规则", readConverterExp = "如=“服务费金额的15%”")
    @ApiModelProperty("员工服务计费服务提成规则")
    private String employeeServiceCommissionRule;

    /**
     * 设备服务计费提成规则（如“设备服务费的8%”）
     */
    @Excel(name = "设备服务计费提成规则", readConverterExp = "如=“设备服务费的8%”")
    @ApiModelProperty("设备服务计费提成规则")
    private String equipmentServiceCommissionRule;

    /**
     * 商品提成规则（如“商品销售额的5%”）
     */
    @Excel(name = "商品提成规则", readConverterExp = "如=“商品销售额的5%”")
    @ApiModelProperty("商品提成规则")
    private String goodsCommissionRule;

    /**
     * 会员充值提成规则（如“充值金额的3%”）
     */
    @Excel(name = "会员充值提成规则", readConverterExp = "如=“充值金额的3%”")
    @ApiModelProperty("会员充值提成规则")
    private String memberRechargeCommissionRule;

    /**
     * 会员购卡提成规则（如“购卡金额的10%”）
     */
    @Excel(name = "会员购卡提成规则", readConverterExp = "如=“购卡金额的10%”")
    @ApiModelProperty("会员购卡提成规则")
    private String memberCardPurchaseCommissionRule;

    /**
     * 是否生效（0=禁用，1=生效）
     */
    @Excel(name = "是否生效", readConverterExp = "0==禁用，1=生效")
    @ApiModelProperty("是否生效（0=禁用，1=生效）")
    private Integer isActive;

    /**
     * 规则生效日期（如2023-10-01）
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "规则生效日期", readConverterExp = "如=2023-10-01")
    @ApiModelProperty("规则生效日期（如2023-10-01）")
    private Date effectiveDate;

    /**
     * 规则失效日期（NULL表示永久有效）
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "规则失效日期", readConverterExp = "N=ULL表示永久有效")
    @ApiModelProperty("规则失效日期（NULL表示永久有效）")
    private Date expiryDate;

    /**
     * 规则版本号（支持版本管理）
     */
    @Excel(name = "规则版本号", readConverterExp = "支=持版本管理")
    @ApiModelProperty("规则版本号（支持版本管理）")
    private Long version;

    /**
     * 手机号
     */
    @Excel(name = "手机号")
    @ApiModelProperty("手机号")
    private String phone;
}